package model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.TreeSet;

public class Mapa implements Serializable {

	private static final long serialVersionUID = 5396519107070222298L;
	
	private ArrayList<Casa> casas = new ArrayList<Casa>();
	private String nome;
	private int altura;
	private int largura;
	private int idBloco;
	private int idBloco2;
	private int idGolo;
	private TreeSet<Integer> idsFracas;
	
	public Mapa(String nome, ArrayList<Casa> casas) {
		this.nome = nome;
		this.casas = casas;
		this.idBloco = this.idBloco2 = this.idGolo = -1;
		this.idsFracas = new TreeSet<Integer>();
	}
	
	public int getIndiceCasa (int x, int y) {
		for (Casa c : getCasas())
			if (c.getX() == x && c.getY() == y)
				return c.getId();
		return -1;
	}
	
	public Casa getCasa(int indice) {	
		for (Casa casa : casas)
			if (casa.getId() == indice)
				return casa;
		return null;
	}
	
	public ArrayList<Casa> getCasas() {
		return casas;
	}
	public void setCasas(ArrayList<Casa> casas) {
		this.casas = casas;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getAltura() {
		if (altura == 0)
			for (Casa casa : casas)
				if (casa.getY() > altura)
					altura = casa.getY();
		return altura;
	}
	public void setAltura(int altura) {
		this.altura = altura;
	}
	public int getLargura() {
		if (largura == 0)
			for (Casa casa : casas)
				if (casa.getX() > largura)
					largura = casa.getX();
		return largura;
	}
	public void setLargura(int largura) {
		this.largura = largura;
	}
	public int getIdBloco() {
		return idBloco;
	}
	public void setIdBloco(int idBloco) {
		this.idBloco = idBloco;
	}
	public int getIdBloco2() {
		return idBloco2;
	}
	public void setIdBloco2(int idBloco2) {
		this.idBloco2 = idBloco2;
	}
	public int getIdGolo() {
		return idGolo;
	}
	public void setIdGolo(int idGolo) {
		this.idGolo = idGolo;
	}
	public String toString() {
		return this.nome;
	}

	public TreeSet<Integer> getIdsFracas() {
		return idsFracas;
	}

	public void TreeSet(TreeSet<Integer> idsFracas) {
		this.idsFracas = idsFracas;
	}
}
